查看原文
其他

程序是如何运行的呢?

小师弟 果果小师弟 2022-07-15

点击上方“果果小师弟”,选择“置顶/星标公众号

干货福利,第一时间送达!

摘要:计算机的内存,计算机中所有程序的运行都在内存中进行,也就是你电脑的内存条中运行的。计算机内存也被称为随机访问存储器,Random Access Memory,简称RAM。
内存一般用于存放程序指令和运算数据,帮助CPU与硬盘等外部存储设备进行数据的交换,内存只能临时存放程序的指令和数据,当电脑关闭之后,内存当中的数据就会随之消失。计算机当中的程序指令,或者是操作数据都是以二进制的形式在内存当中存储和计算的。
我们可以将内存看作是排成一排的方格,每个方格可以存储0或者是1这两种数字。
一个方格也被称为一个比特位,将8个连续的比特分为一组,代表1个字节byte。
如果将内存比作是一栋大楼的话,那么字节就是大楼当中的房间,而每个房间都对应一个唯一的门牌,所以每个字节都有一个唯一的地址。那么这些地址也被称为内存地址。通过内存地址,我们可以访问内存当中的每一个字节。内存地址一般用16进制表示,16进制表示的数字用0X开头,假如说内存地址从八个0到八个F,那个内存的大小就是16的八次方,也就是2^32次方个字节=4GB大小。
使用Windows当中的DEBUG程序,可以模拟并且查看CPU、寄存器,还有内存当中的相关数据,这里我们使用DEBUG命令主要是为了更加直观的观察和理解内存,观察到的数据并不是当前内存当中真实的数据。
那么我们除了使用字节为单位来表示内存的大小,还可以使用千字节KB,兆字节MB,还有千兆字节GB来表示,一般现在的计算机都是以GB来形容内存的大小,其中1KB等于1024字节,1MB等于1024KB,1GB等于1024MB,那么2^23方字节就是4GB了。
那么程序到底是如何运行的呢?
开发的软件放在我们电脑的硬盘上,比如电脑上我们经常使用的QQ软件,点击QQ图标—>右击—>属性。可以看到QQ是一个.exe可执行文件。当我们双击QQ时,QQ程序就会运行起来。
程序在运行过程中要先放到从内存中。就以这个QQ为例,QQ.exe文件肯定是用某一个编译器生成的文件。通过在编译器中写好代码,然后编译、连接,将我们学过的函数啊、代码啊、变量啊等等转换成电脑CPU可识别的010101...数字。也就是我们写的代码包含了大量的CPU能识别的机器代码、CPU指令。生成的.exe文件里面就是0101010101…..。CPU读取内存中的数据,读取指令控制执行相应的操作。在CPU内部有寄存器、运算器和控制器。因为寄存器就在内部,所以说内存中需要计算的数据首先要将其拿到寄存器中进行运算,将算好的数据送回到内存中去。
通常CPU会先将内存中的数据存储到寄存器中,然后再对寄存器中的数据进行运算。假设内存中有块红色内存空间的值是3,现在想把它的值加1,并将结果存储到蓝色内存空间。
1、CPU首先会将红色内存空间的值放到EAX寄存器中:mov eax,红色内存空间
2、然后让EAX寄存器与1相加:
add eax,1
3、最后将值赋值给内存空间:
mov 蓝色内存空间,eax

End

推荐好文  点击蓝色字体即可跳转
【收藏】烂大街的ESP82666该咋玩
【物联网】IOT你真的懂吗?
【典藏】基于SYN7318智能家居语音识别系统设计
【鸡汤】如何做一名合格的研究生?
【鸡汤】大一就开始参加电赛,看学长咋学的
【干货】H桥电机驱动电路详解
【干货】低功耗待机模式+RTC闹钟中断唤醒
【干货】你必须知道的单片机存储器的那些事

☞【干货】零基础一周完成平衡小车项目

欢迎转发、留言、点赞、分享给你的朋友,感谢您的支持!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存